package com.jumi.microservice.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jumi.microservice.common.base.AbstractObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 商品sku vo类
 *
 * @author Administrator
 */
@ApiModel(value = "GoodsSku对象", description = "商品表")
public class GoodsSkuVO extends AbstractObject implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "商品id(SKU)")
    private Long id;

    @ApiModelProperty(value = "商品sku编码")
    private String skuCode;

    @ApiModelProperty(value = "第三方商品sku编码")
    private String skuThirdPartyCode;

    @ApiModelProperty(value = "商品sku状态-0:删除;1:上架,2:下架")
    private Integer skuStatus;

    @ApiModelProperty(value = "商品spuid")
    private Long goodsId;

    @ApiModelProperty(value = "物料的商品skuid")
    private Long materialSkuId;

    @ApiModelProperty(value = "物料的商品sku编码")
    private String materialSkuCode;

    @ApiModelProperty(value = "物料的商品分类ID")
    private Long cateId;

    @ApiModelProperty(value = "商品名称（+规格名称）")
    private String goodsName;

    @ApiModelProperty(value = "团购价")
    private BigDecimal goodsPrice;

    @ApiModelProperty(value = "商品促销价格")
    private BigDecimal goodsPromotionPrice;

    @ApiModelProperty(value = "店长价")
    private BigDecimal platinumPrice;

    @ApiModelProperty(value = "优秀店长价")
    private BigDecimal diamondsPrice;

    @ApiModelProperty(value = "金牌推广商")
    private BigDecimal kingPrice;

    @ApiModelProperty(value = "服务费")
    private BigDecimal getOrderPrice;

    @ApiModelProperty(value = "商品重量(KG)")
    private BigDecimal weight;

    @ApiModelProperty(value = "保质期(天)")
    private Integer qualityTime;

    @ApiModelProperty(value = "市场价")
    private BigDecimal goodsMarketprice;

    @ApiModelProperty(value = "sku成本价")
    private BigDecimal goodsCostprice;

    @ApiModelProperty(value = "商品主图")
    private String goodsImage;

    @ApiModelProperty(value = "属性图片")
    private String goodsPropertyImage;

    @ApiModelProperty(value = "商品条形码")
    private String goodsBarcode;

    @ApiModelProperty(value = "虚拟销量")
    private Integer virtualNum;

    @ApiModelProperty(value = "库存预警值")
    private Integer alertStorage;

    @ApiModelProperty(value = "预售库存")
    private Integer preStorage;

    @ApiModelProperty(value = "已销售库存")
    private Integer saledStorage;

    @ApiModelProperty(value = "供应商ID")
    private Long supplyId;

    @ApiModelProperty(value = "供应商名称")
    private String supplier;

    @ApiModelProperty(value = "添加人")
    private String creater;

    @ApiModelProperty(value = "添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "修改人")
    private String modifier;

    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "库存")
    private Integer saleStockQuantity;

    @ApiModelProperty(value = "商品类型1：单个商品；2：第三方商品;3:商品组合")
    private Integer goodsType;

    @ApiModelProperty("属性名称")
    private String specName;

    @ApiModelProperty(value = "sku属性值集合")
    List<GoodsSkuPropertyValueVO> goodsSkuPropertyValue = new ArrayList<>();

    @ApiModelProperty(value = "组合商品和物料的sku对应关系集合")
    List<CommodityMaterialSkuRelationshipVO> commodityMaterialSkuRelationship = new ArrayList<>();

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    private Integer isDel;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }


    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    public BigDecimal getGoodsPromotionPrice() {
        return goodsPromotionPrice;
    }

    public void setGoodsPromotionPrice(BigDecimal goodsPromotionPrice) {
        this.goodsPromotionPrice = goodsPromotionPrice;
    }

    public BigDecimal getPlatinumPrice() {
        return platinumPrice;
    }

    public void setPlatinumPrice(BigDecimal platinumPrice) {
        this.platinumPrice = platinumPrice;
    }

    public BigDecimal getDiamondsPrice() {
        return diamondsPrice;
    }

    public void setDiamondsPrice(BigDecimal diamondsPrice) {
        this.diamondsPrice = diamondsPrice;
    }

    public BigDecimal getKingPrice() {
        return kingPrice;
    }

    public void setKingPrice(BigDecimal kingPrice) {
        this.kingPrice = kingPrice;
    }

    public BigDecimal getGetOrderPrice() {
        return getOrderPrice;
    }

    public void setGetOrderPrice(BigDecimal getOrderPrice) {
        this.getOrderPrice = getOrderPrice;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public Integer getQualityTime() {
        return qualityTime;
    }

    public void setQualityTime(Integer qualityTime) {
        this.qualityTime = qualityTime;
    }

    public BigDecimal getGoodsMarketprice() {
        return goodsMarketprice;
    }

    public void setGoodsMarketprice(BigDecimal goodsMarketprice) {
        this.goodsMarketprice = goodsMarketprice;
    }

    public BigDecimal getGoodsCostprice() {
        return goodsCostprice;
    }

    public void setGoodsCostprice(BigDecimal goodsCostprice) {
        this.goodsCostprice = goodsCostprice;
    }

    public String getGoodsImage() {
        return goodsImage;
    }

    public void setGoodsImage(String goodsImage) {
        this.goodsImage = goodsImage;
    }

    public String getGoodsBarcode() {
        return goodsBarcode;
    }

    public void setGoodsBarcode(String goodsBarcode) {
        this.goodsBarcode = goodsBarcode;
    }

    public Integer getVirtualNum() {
        return virtualNum;
    }

    public void setVirtualNum(Integer virtualNum) {
        this.virtualNum = virtualNum;
    }

    public String getCreater() {
        return creater;
    }

    public void setCreater(String creater) {
        this.creater = creater;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getModifier() {
        return modifier;
    }

    public void setModifier(String modifier) {
        this.modifier = modifier;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getGoodsPropertyImage() {
        return goodsPropertyImage;
    }

    public void setGoodsPropertyImage(String goodsPropertyImage) {
        this.goodsPropertyImage = goodsPropertyImage;
    }

    public Long getSupplyId() {
        return supplyId;
    }

    public void setSupplyId(Long supplyId) {
        this.supplyId = supplyId;
    }

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }


    public String getSkuCode() {
        return skuCode;
    }

    public void setSkuCode(String skuCode) {
        this.skuCode = skuCode;
    }

    public String getSkuThirdPartyCode() {
        return skuThirdPartyCode;
    }

    public void setSkuThirdPartyCode(String skuThirdPartyCode) {
        this.skuThirdPartyCode = skuThirdPartyCode;
    }

    public Integer getSaleStockQuantity() {
        return saleStockQuantity;
    }

    public void setSaleStockQuantity(Integer saleStockQuantity) {
        this.saleStockQuantity = saleStockQuantity;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }

    public Integer getAlertStorage() {
        return alertStorage;
    }

    public void setAlertStorage(Integer alertStorage) {
        this.alertStorage = alertStorage;
    }

    public Long getCateId() {
        return cateId;
    }

    public void setCateId(Long cateId) {
        this.cateId = cateId;
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    public List<GoodsSkuPropertyValueVO> getGoodsSkuPropertyValue() {
        return goodsSkuPropertyValue;
    }

    public void setGoodsSkuPropertyValue(List<GoodsSkuPropertyValueVO> goodsSkuPropertyValue) {
        this.goodsSkuPropertyValue = goodsSkuPropertyValue;
    }

    public List<CommodityMaterialSkuRelationshipVO> getCommodityMaterialSkuRelationship() {
        return commodityMaterialSkuRelationship;
    }

    public void setCommodityMaterialSkuRelationship(List<CommodityMaterialSkuRelationshipVO> commodityMaterialSkuRelationship) {
        this.commodityMaterialSkuRelationship = commodityMaterialSkuRelationship;
    }

    public Long getMaterialSkuId() {
        return materialSkuId;
    }

    public void setMaterialSkuId(Long materialSkuId) {
        this.materialSkuId = materialSkuId;
    }

    public String getMaterialSkuCode() {
        return materialSkuCode;
    }

    public void setMaterialSkuCode(String materialSkuCode) {
        this.materialSkuCode = materialSkuCode;
    }

    public Integer getPreStorage() {
        return preStorage;
    }

    public void setPreStorage(Integer preStorage) {
        this.preStorage = preStorage;
    }

    public Integer getSaledStorage() {
        return saledStorage;
    }

    public void setSaledStorage(Integer saledStorage) {
        this.saledStorage = saledStorage;
    }

    public Integer getSkuStatus() {
        return skuStatus;
    }

    public void setSkuStatus(Integer skuStatus) {
        this.skuStatus = skuStatus;
    }

    public Integer getIsDel() {
        return isDel;
    }

    public void setIsDel(Integer isDel) {
        this.isDel = isDel;
    }


}
